home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / devel / libx11 / include / x11 / xaw / textsink.h < prev    next >
C/C++ Source or Header  |  1999-01-01  |  9KB  |  296 lines

  1. /*
  2.  * $XConsortium: TextSink.h,v 1.8 91/02/17 13:20:18 rws Exp $
  3.  */
  4.  
  5. /***********************************************************
  6. Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  7. and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
  8.  
  9.                         All Rights Reserved
  10.  
  11. Permission to use, copy, modify, and distribute this software and its 
  12. documentation for any purpose and without fee is hereby granted, 
  13. provided that the above copyright notice appear in all copies and that
  14. both that copyright notice and this permission notice appear in 
  15. supporting documentation, and that the names of Digital or MIT not be
  16. used in advertising or publicity pertaining to distribution of the
  17. software without specific, written prior permission.  
  18.  
  19. DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  20. ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  21. DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  22. ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  23. WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  24. ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  25. SOFTWARE.
  26.  
  27. ******************************************************************/
  28.  
  29. #ifndef _XawTextSink_h
  30. #define _XawTextSink_h
  31.  
  32. /***********************************************************************
  33.  *
  34.  * TextSink Object
  35.  *
  36.  ***********************************************************************/
  37.  
  38. #include <X11/Object.h>
  39. #include <X11/Xfuncproto.h>
  40.  
  41. /* Resources:
  42.  
  43.  Name             Class        RepType        Default Value
  44.  ----             -----        -------        -------------
  45.  font                Font            XFontStruct *      XtDefaultFont
  46.  foreground          Foreground      Pixel              XtDefaultForeground
  47.  background          Background      Pixel              XtDefaultBackground
  48.  
  49. */
  50.  
  51. /* Class record constants */
  52.  
  53. extern WidgetClass textSinkObjectClass;
  54.  
  55. typedef struct _TextSinkClassRec *TextSinkObjectClass;
  56. typedef struct _TextSinkRec      *TextSinkObject;
  57.  
  58. typedef enum {XawisOn, XawisOff} XawTextInsertState;
  59.  
  60. /************************************************************
  61.  *
  62.  * Public Functions.
  63.  *
  64.  ************************************************************/
  65.  
  66. _XFUNCPROTOBEGIN
  67.  
  68. /*    Function Name: XawTextSinkDisplayText
  69.  *    Description: Stub function that in subclasses will display text. 
  70.  *    Arguments: w - the TextSink Object.
  71.  *                 x, y - location to start drawing text.
  72.  *                 pos1, pos2 - location of starting and ending points
  73.  *                              in the text buffer.
  74.  *                 highlight - hightlight this text?
  75.  *    Returns: none.
  76.  *
  77.  * This function doesn't actually display anything, it is only a place
  78.  * holder.
  79.  */
  80.  
  81. extern void XawTextSinkDisplayText(
  82. #if NeedFunctionPrototypes
  83.     Widget        /* w */,
  84. #if NeedWidePrototypes
  85.     /* Position */ int    /* x */,
  86.     /* Position    */ int    /* y */,
  87. #else
  88.     Position        /* x */,
  89.     Position        /* y */,
  90. #endif
  91.     XawTextPosition    /* pos1 */,
  92.     XawTextPosition    /* pos2 */,
  93. #if NeedWidePrototypes
  94.     /* Boolean */ int    /* highlight */
  95. #else
  96.     Boolean        /* highlight */
  97. #endif
  98. #endif
  99. );
  100.  
  101. /*    Function Name: XawTextSinkInsertCursor
  102.  *    Description: Places the InsertCursor.
  103.  *    Arguments: w - the TextSink Object.
  104.  *                 x, y - location for the cursor.
  105.  *                 staye - whether to turn the cursor on, or off.
  106.  *    Returns: none.
  107.  *
  108.  * This function doesn't actually display anything, it is only a place
  109.  * holder.
  110.  */
  111.  
  112. extern void XawTextSinkInsertCursor(
  113. #if NeedFunctionPrototypes
  114.     Widget        /* w */,
  115. #if NeedWidePrototypes
  116.     /* Position */ int    /* x */,
  117.     /* Position    */ int    /* y */,
  118.     /* XawTextInsertState */ int /* state */
  119. #else
  120.     Position        /* x */,
  121.     Position        /* y */,
  122.     XawTextInsertState    /* state */
  123. #endif
  124. #endif
  125. );
  126.  
  127. /*    Function Name: XawTextSinkClearToBackground
  128.  *    Description: Clears a region of the sink to the background color.
  129.  *    Arguments: w - the TextSink Object.
  130.  *                 x, y  - location of area to clear.
  131.  *                 width, height - size of area to clear
  132.  *    Returns: void.
  133.  *
  134.  * This function doesn't actually display anything, it is only a place
  135.  * holder.
  136.  */
  137.  
  138. extern void XawTextSinkClearToBackground(
  139. #if NeedFunctionPrototypes
  140.     Widget        /* w */,
  141. #if NeedWidePrototypes
  142.     /* Position */ int    /* x */,
  143.     /* Position */ int    /* y */,
  144.     /* Dimension */ int    /* width */,
  145.     /* Dimension */ int    /* height */
  146. #else
  147.     Position        /* x */,
  148.     Position        /* y */,
  149.     Dimension        /* width */,
  150.     Dimension        /* height */
  151. #endif
  152. #endif
  153. );
  154.  
  155. /*    Function Name: XawTextSinkFindPosition
  156.  *    Description: Finds a position in the text.
  157.  *    Arguments: w - the TextSink Object.
  158.  *                 fromPos - reference position.
  159.  *                 fromX   - reference location.
  160.  *                 width,  - width of section to paint text.
  161.  *                 stopAtWordBreak - returned position is a word break?
  162.  *                 resPos - Position to return.      *** RETURNED ***
  163.  *                 resWidth - Width actually used.   *** RETURNED ***
  164.  *                 resHeight - Height actually used. *** RETURNED ***
  165.  *    Returns: none (see above).
  166.  */
  167.  
  168. extern void XawTextSinkFindPosition(
  169. #if NeedFunctionPrototypes
  170.     Widget        /* w */,
  171.     XawTextPosition    /* fromPos */,
  172.     int            /* fromX */,
  173.     int            /* width */,
  174. #if NeedWidePrototypes
  175.     /* Boolean */ int    /* stopAtWordBreak */,
  176. #else
  177.     Boolean        /* stopAtWordBreak */,
  178. #endif
  179.     XawTextPosition*    /* pos_return */,
  180.     int*        /* width_return */,
  181.     int*        /* height_return */
  182. #endif
  183. );
  184.  
  185. /*    Function Name: XawTextSinkFindDistance
  186.  *    Description: Find the Pixel Distance between two text Positions.
  187.  *    Arguments: w - the TextSink Object.
  188.  *                 fromPos - starting Position.
  189.  *                 fromX   - x location of starting Position.
  190.  *                 toPos   - end Position.
  191.  *                 resWidth - Distance between fromPos and toPos.
  192.  *                 resPos   - Acutal toPos used.
  193.  *                 resHeight - Height required by this text.
  194.  *    Returns: none.
  195.  */
  196.  
  197. extern void XawTextSinkFindDistance (
  198. #if NeedFunctionPrototypes
  199.     Widget        /* w */,
  200.     XawTextPosition    /* fromPos */,
  201.     int            /* fromX */,
  202.     XawTextPosition     /* toPos */,
  203.     int*        /* width_return */,
  204.     XawTextPosition*    /* pos_return */,
  205.     int*        /* height_return */
  206. #endif
  207. );
  208.  
  209. /*    Function Name: XawTextSinkResolve
  210.  *    Description: Resloves a location to a position.
  211.  *    Arguments: w - the TextSink Object.
  212.  *                 pos - a reference Position.
  213.  *                 fromx - a reference Location.
  214.  *                 width - width to move.
  215.  *                 resPos - the resulting position.
  216.  *    Returns: none
  217.  */
  218.  
  219. extern void XawTextSinkResolve(
  220. #if NeedFunctionPrototypes
  221.     Widget        /* w */,
  222.     XawTextPosition    /* fromPos */,
  223.     int            /* fromX */,
  224.     int            /* width */,
  225.     XawTextPosition*    /* pos_return */
  226. #endif
  227. );
  228.  
  229. /*    Function Name: XawTextSinkMaxLines
  230.  *    Description: Finds the Maximum number of lines that will fit in
  231.  *                   a given height.
  232.  *    Arguments: w - the TextSink Object.
  233.  *                 height - height to fit lines into.
  234.  *    Returns: the number of lines that will fit.
  235.  */
  236.  
  237. extern int XawTextSinkMaxLines(
  238. #if NeedFunctionPrototypes
  239.     Widget        /* w */,
  240. #if NeedWidePrototypes
  241.     /* Dimension */ int    /* height */
  242. #else
  243.     Dimension        /* height */
  244. #endif
  245. #endif
  246. );
  247.  
  248. /*    Function Name: XawTextSinkMaxHeight
  249.  *    Description: Finds the Minium height that will contain a given number 
  250.  *                   lines.
  251.  *    Arguments: w - the TextSink Object.
  252.  *                 lines - the number of lines.
  253.  *    Returns: the height.
  254.  */
  255.  
  256. extern int XawTextSinkMaxHeight(
  257. #if NeedFunctionPrototypes
  258.     Widget        /* w */,
  259.     int            /* lines */
  260. #endif
  261. );
  262.  
  263. /*    Function Name: XawTextSinkSetTabs
  264.  *    Description: Sets the Tab stops.
  265.  *    Arguments: w - the TextSink Object.
  266.  *                 tab_count - the number of tabs in the list.
  267.  *                 tabs - the text positions of the tabs.
  268.  *    Returns: none
  269.  */
  270.  
  271. extern void XawTextSinkSetTabs(
  272. #if NeedFunctionPrototypes
  273.     Widget        /* w */,
  274.     int            /* tab_count */,
  275.     int*        /* tabs */
  276. #endif
  277. );
  278.                           
  279. /*    Function Name: XawTextSinkGetCursorBounds
  280.  *    Description: Finds the bounding box for the insert curor (caret).
  281.  *    Arguments: w - the TextSinkObject.
  282.  *                 rect - an X rectance containing the cursor bounds.
  283.  *    Returns: none (fills in rect).
  284.  */
  285.  
  286. extern void XawTextSinkGetCursorBounds(
  287. #if NeedFunctionPrototypes
  288.     Widget        /* w */,
  289.     XRectangle*        /* rect_return */
  290. #endif
  291. );
  292.  
  293. _XFUNCPROTOEND
  294.  
  295. #endif /* _XawTextSrc_h -- DON'T ADD STUFF AFTER THIS #endif */
  296.